/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package ClasesBase;

import java.util.LinkedList;

/**
 *
 * @author Jose
 */
public class Propiedad extends Casillero {

    private int idPropiedad;
    private String color;
    private int alquiler;
    private int alquilerUnaCasa;
    private int alquilerDosCasas;
    private int alquilerTresCasas;
    private int alquilerCuatroCasas;
    private int alquilerConHotel;
    private int valorHipotecario;
    private int costoDeshipoteca;
    private int valorCasa;
    private int precio;
    private int cantCasas;
    private boolean esHipotecado;

    private LinkedList<Integer> hnos;

    public Propiedad(int idCasillero, String tipo, String nombre, int idPropiedad, String color, int alquiler, int alquilerUnaCasa, int alquilerDosCasas, int alquilerTresCasas, int alquilerCuatroCasas, int alquilerHotel, int valorHipotecario, int valorCasa, int precio) {
        super(idCasillero, tipo, nombre);
        this.idPropiedad = idPropiedad;
        this.color = color;
        this.alquiler = alquiler;
        this.alquilerUnaCasa = alquilerUnaCasa;
        this.alquilerDosCasas = alquilerDosCasas;
        this.alquilerTresCasas = alquilerTresCasas;
        this.alquilerCuatroCasas = alquilerCuatroCasas;
        this.alquilerConHotel = alquilerHotel;
        this.valorHipotecario = valorHipotecario;
        this.costoDeshipoteca = valorHipotecario + valorHipotecario / 10;
        this.valorCasa = valorCasa;
        this.precio = precio;
        this.hnos = new LinkedList<>();
        this.cantCasas = 0;
        this.esHipotecado = false;
    }

    public int getCostoDeshipoteca() {
        return costoDeshipoteca;
    }

    public void setCostoDeshipoteca(int costoDeshipoteca) {
        this.costoDeshipoteca = costoDeshipoteca;
    }
    
    public LinkedList<Integer> getHnos() {
        return hnos;
    }

    public void setHnos(LinkedList<Integer> hnos) {
        this.hnos = hnos;
    }

    public Propiedad() {
    }

    public void addHno(int hno) {
        if (hno != 0) {
            hnos.add(hno);
        }
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getAlquiler() {
        return alquiler;
    }

    public void setAlquiler(int alquiler) {
        this.alquiler = alquiler;
    }

    public int getAlquilerConHotel() {
        return alquilerConHotel;
    }

    public void setAlquilerConHotel(int conHotel) {
        this.alquilerConHotel = conHotel;
    }

    public int getValorHipotecario() {
        return valorHipotecario;
    }

    public void setValorHipotecario(int valorHipotecario) {
        this.valorHipotecario = valorHipotecario;
    }

    public int getValorCasa() {
        return valorCasa;
    }

    public void setValorCasa(int valorCasa) {
        this.valorCasa = valorCasa;
    }

    public int getIdPropiedad() {
        return idPropiedad;
    }

    public void setIdPropiedad(int idPropiedad) {
        this.idPropiedad = idPropiedad;
    }

    public int getAlquilerUnaCasa() {
        return alquilerUnaCasa;
    }

    public void setAlquilerUnaCasa(int alquilerUnaCasa) {
        this.alquilerUnaCasa = alquilerUnaCasa;
    }

    public int getAlquilerDosCasas() {
        return alquilerDosCasas;
    }

    public void setAlquilerDosCasas(int alquilerDosCasas) {
        this.alquilerDosCasas = alquilerDosCasas;
    }

    public int getAlquilerTresCasas() {
        return alquilerTresCasas;
    }

    public void setAlquilerTresCasas(int alquilerTresCasas) {
        this.alquilerTresCasas = alquilerTresCasas;
    }

    public int getAlquilerCuatroCasas() {
        return alquilerCuatroCasas;
    }

    public void setAlquilerCuatroCasas(int alquilerCuatroCasas) {
        this.alquilerCuatroCasas = alquilerCuatroCasas;
    }

    /**
     * @return the precio
     */
    public int getPrecio() {
        return precio;
    }

    /**
     * @param precio the precio to set
     */
    public void setPrecio(int precio) {
        this.precio = precio;
    }

    public int getAlquilerConCasa() {
        switch(cantCasas){
            case 1:
                return getAlquilerUnaCasa();
            case 2:
                return getAlquilerDosCasas();
            case 3:
                return getAlquilerTresCasas();
            case 4:
                return getAlquilerCuatroCasas();
            case 5:
                return getAlquilerConHotel();
        }
        return -1;
    }
    public boolean isEsHipotecado() {
        return esHipotecado;
    }

    public void setEsHipotecado(boolean esHipotecado) {
        this.esHipotecado = esHipotecado;
    }

    public int getCantCasas() {
        return cantCasas;
    }

    public void setCantCasas(int cantCasas) {
        this.cantCasas = cantCasas;
    }
    
    
    public int compareTo(Propiedad t) {
        Propiedad aux = (Propiedad) t;
        String color = t.getColor();
        return color.compareTo(this.color);
    }
    
}
